package com.qrback.service;

import com.qrback.entity.Device;

import java.io.OutputStream;
import java.util.Date;
import java.util.List;
import java.util.Map;

public interface DeviceService {
    
    // 获取所有设备
    List<Device> getAllDevices();
    
    // 根据ID获取设备
    Device getDeviceById(Integer id);
    
    // 根据设备编号获取设备
    Device getDeviceByDeviceCode(String deviceCode);
    
    // 创建新设备
    Device createDevice(Device device, Integer userId);
    
    // 更新设备信息
    Device updateDevice(Device device);
    
    // 删除设备
    void deleteDevice(Integer id);
    
    // 根据条件筛选设备
    List<Device> filterDevices(Map<String, Object> filters);
    
    // 根据设备类型筛选设备
    List<Device> getDevicesByType(String deviceType);
    
    // 根据生产日期范围筛选设备
    List<Device> getDevicesByProductionDateRange(Date startDate, Date endDate);
    
    // 生成设备二维码
    String generateDeviceQrCode(Integer deviceId);
    
//    // 导出设备信息为Excel - 按设备ID列表
//    void exportDevicesToExcel(OutputStream outputStream, List<Integer> deviceIds);
//
    // 导出设备信息为Excel - 按设备对象列表
    void exportDevicesToExcel(OutputStream outputStream, List<Device> devices);
    
    // 检查设备编号是否已存在
    boolean existsByDeviceCode(String deviceCode);
}